﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CapaDeDominio;

namespace CapaDeDatos.EF
{
    public class MaestraDAO : IMaestraDAO
    {
      
        #region IMaestraDAO Members

        /// <summary>
        /// Obtiene el listado de registros por el nombre de la tabla
        /// </summary>
        /// <param name="nomtabla"></param>
        /// <returns></returns>
        public ICollection<Maestra> ObtenerXNombreTabla(String nomtabla)
        {
            using (EFContext db = new EFContext(ConexionUtil.ObtenerCadena()))
            {
                var resultado = from l in db.Maestras
                                where l.tabla == nomtabla
                                select l;
                return resultado.ToList();
            }
        }

        /// <summary>
        /// Obtiene la descripcion por su id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Maestra Obtener(int id)
        {
            using (EFContext db = new EFContext(ConexionUtil.ObtenerCadena()))
            {
                var resultado = from l in db.Maestras
                                where l.Codigo == id
                                select l;
                return resultado.SingleOrDefault();
            }
        }

        public void Eliminar(Maestra itemEliminar)
        {
            using (EFContext db = new EFContext(ConexionUtil.ObtenerCadena()))
            {
                Maestra maestra = db.Maestras.Single(i => i.Codigo == itemEliminar.Codigo);
                db.Maestras.Remove(maestra);
                db.SaveChanges();
            }
        }

        #endregion

        #region IBaseDAO<Maestra,int> Members

        public Maestra Crear(Maestra entidad)
        {
            throw new NotImplementedException();
        }

        public ICollection<Maestra> ListarTodos()
        {
            using (EFContext db = new EFContext(ConexionUtil.ObtenerCadena()))
            {
                var resultado = from l in db.Maestras                                
                                select l;
                return resultado.ToList();
            }
        }

        #endregion

    }
}